import java.util.Scanner;

/**
 * 计算最少出列多少位同学，使得剩下的同学排成合唱队形
 * 说明：
 * N位同学站成一排，音乐老师要请其中的(N-K)位同学出列，使得剩下的K位同学排成合唱队形。
 * 合唱队形是指这样的一种队形：设K位同学从左到右依次编号为1，2…，K，
 * 他们的身高分别为T1，T2，…，TK，则他们的身高满足存在i（1<=i<=K）使得T1<T2<......<Ti-1<Ti>Ti+1>......>TK。
 * 现已知所有N位同学的身高，计算最少需要几位同学出列，可以使得剩下的同学排成合唱队形。
 * Created by JiaJia on 2019/6/21 0021.
 */
public class HuaWei023 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while (scanner.hasNext()){
            int N=scanner.nextInt();
            int[] arr=new int[N];
            for (int i = 0; i <N ; i++) {
                arr[i]=scanner.nextInt();
            }
            System.out.println(countChorus(arr));
        }scanner.close();
    }
    private static int countChorus(int[] arr){
        int[] ltr=getRiseLongestSequenceLeftToRight(arr);
        int[] rtl=getRiseLongestSequenceRightToLeft(arr);

        int max=Integer.MIN_VALUE;

        for (int i = 0; i <arr.length ; i++) {
            if (ltr[i]+rtl[i]>max){
                max=ltr[i]+rtl[i]-1;
            }
        }
        return arr.length-max;
    }
    private static int[] getRiseLongestSequenceLeftToRight(int[] arr){
        int[] ltr = new int[arr.length];

        for (int i = 0; i <arr.length ; i++) {
            ltr[i]=1;
            for (int j = 0; j <i ; j++) {
                if (arr[j]<arr[i] && ltr[i]<=ltr[j]){
                    ltr[i]=ltr[j]+1;
                }
            }
        }
        return ltr;
    }
    private static int[] getRiseLongestSequenceRightToLeft(int[] arr){
        int[] rtl=new int[arr.length];
        for (int i =arr.length-1; i >=0 ; i--) {
            rtl[i]=1;
            for (int j = arr.length-1; j >i ; j--) {
                if (arr[j]<arr[i] && rtl[i]<=rtl[j]){
                    rtl[i]=rtl[j]+1;
                }
            }
        }
        return rtl;
    }

}